package com.gougou.mapper;

import com.gougou.pojo.TbUser;
import com.gougou.pojo.TbUserExample;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

public interface TbUserMapper {

    /**
     * 新增用户
     * @param user  用户对象
     * @return      成功条数
     */
    int addUser(TbUser user);

    /**
     * 根据用户ID获取用户信息
     * @param user  用户对象
     * @return      用户对象
     */
    TbUser getUserById(TbUser user);

    /**
     * 根据用户名获取用户信息
     * @param tbUser  用户对象
     * @return      用户对象
     */
    TbUser getUserByName(TbUser tbUser);

    /**
     * 根据用户名获取用户信息
     * @param userName  用户对象
     * @return      用户对象
     */
    TbUser getUserByUserName(String userName);


    /**
     * 调用存储过程输入参数计算返回值
     * @param param
     * @return
     */
    void pageAdd(Map<String, String> param);

    /**
     * 注册新用户
     * @param tbUser
     */
    void registerUser(TbUser tbUser);

    /**
     * 根据用户ID删除用户信息
     * @param user  用户对象
     * @return      成功条数
     */
    int removeUserById(TbUser user);

    long countByExample(TbUserExample example);

    int deleteByExample(TbUserExample example);

    int deleteByPrimaryKey(Long id);

    int insert(TbUser record);

    int insertSelective(TbUser record);

    List<TbUser> selectByExample(TbUserExample example);

    TbUser selectByPrimaryKey(Long id);

    int updateByExampleSelective(@Param("record") TbUser record, @Param("example") TbUserExample example);

    int updateByExample(@Param("record") TbUser record, @Param("example") TbUserExample example);

    int updateByPrimaryKeySelective(TbUser record);

    int updateByPrimaryKey(TbUser record);
}